home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 2
/
Amiga Tools 2.iso
/
grafik
/
bildanzeiger
/
jpegaga
/
doc
/
jpegaga.dok
< prev
next >
Wrap
Text File
|
1995-03-09
|
14KB
|
385 lines
jpegAGA 1.1 von Günther Röhrich
*******************************
jpegAGA ist ein Anzeigeprogramm für JPEG-Bilder mit der derzeit besten
Bildqualität. (sofern eine map-Datei für das Bild vorhanden ist) Zur Anzeige
ist der AGA-Chipsatz, ein 68020 Prozessor (oder höher) sowie OS 3.0 (oder höher)
erforderlich. Es wird der HAM8-Modus verwendet, lediglich die Graustufendar-
stellung erfolgt im 256-Farben-Modus.
Wenn zu dem JPEG-Bild eine vorberechnete Farbpalette in Form einer Datei
mit der Endung .map vorhanden ist dann erfolgt die Anzeige in einer Bild-
qualität, die von keinem anderen Anzeigeprogramm bisher erreicht wird.
Mit Hilfe der beigefügten Programme und des Shell-Skripts kann zu jedem
Bild eine solche map-Datei, die lediglich 198 Bytes lang ist, erzeugt werden.
Falls keine map-Datei vorhanden ist, dann erfolgt die Anzeige in schlechterer
Qualität. Für Graustufendarstellung wird diese Datei nicht benötigt.
Die Vorteile von jpegAGA:
- sehr gute Bildqualität (besser als bei allen anderen Anzeigeprogrammen)
- vollständiger Quelltext ist vorhanden
- größtmögliche Kompatibilität zu allen JPEG-Bildern da zur Dekodierung der
JPEG-Quelltext der Independent JPEG Group im Originalzustand verwendet wird
- hohe Geschwindigkeit durch Verwendung des GNU C Compilers und des direkt in
Assembler programmierten 24-bit-RGB nach HAM8 Wandlers
- Unterstützung des Graustufen-JPEG Formats sowie Anzeige von Farbbildern in
Graustufen
- Auswahl des Bildschirmmodus nach der Größe des Bildes
Bevor ich mit der Anleitung anfange muß ich aber noch folgendes loswerden:
Dieses Programm ist Public Domain (d.h. man braucht nichts zu bezahlen). Der
beigefügte Quelltext kann nach Belieben verwendet werden. Für den JPEG-Quell-
text sind die Hinweise in der Datei README zu beachten.
Bedanken möchte ich mich noch bei folgenden Personen:
The Independent JPEG Group (jpeg-info@uunet.uu.net):
für den Quelltext zum Dekodieren des JPEG-Bildformats
Free Software Foundation, Inc. sowie allen Mitwirkenden für die Entwicklung
des GNU C Compilers und der weiteren Software
***********************************************************************
So, nun sollte ich mal zum Wesentlichen kommen:
Installation:
*************
Die Programme aus dem bin-Verzeichnis können in ein beliebiges Verzeichnis
kopiert werden, sie sollten sich aber im Suchpfad der Shell befinden. Die
Endung der Dateien gibt an für welchen Prozessor sie gedacht sind, nach der
Installation sollte man aber die Endungen entfernen.
Endung 000: 68000 oder 68010 Prozessor (läuft auch auf allen anderen)
Endung 020: 68020 oder höhere Prozessoren
Die Programme wurden mit GNU C 2.5.8 übersetzt und benötigen daher die
ixemul.library im LIBS: Verzeichnis. (Version 40 oder höher)
Für die Verwendung des Shell-Skripts CreateMap muß JPEGTMP: mit einem assign-
Befehl an ein Verzeichnis auf einer Festplatte mit ausreichend Speicherplatz
zugewiesen werden. (z.B. assign JPEGTMP: HD:T) Die Programme djpeg und cjpeg
greifen unter Umständen ebenfalls darauf zu.
Am Besten schreibt man diesen Befehl in die User-Startup Datei damit er nach
jedem Neustart ausgeführt wird.
Das Shell-Skript CreateMap muß in das S: Verzeichnis kopiert werden. Es setzt
voraus daß sich die Programme mit den Namen djpeg sowie ppm2AGA im Suchpfad der
Shell befinden und daß ein JPEGTMP: Verzeichnis existiert.
Der Aufruf von jpegAGA geschieht wie folgt:
jpegAGA Eingabedatei Optionen
Eingabedatei:
*************
Die JPEG-Datei, die gelesen soll. Graustufenbilder werden gesondert behandelt
und werden direkt ohne aufwendige Umrechnung auf einem 256-Farben-Bildschirm
angezeigt. Leider gibt es auch Graustufenbilder die fälschlicherweise als
Farbbilder codiert wurden. In diesem Fall sollte man die -GRAY Option verwen-
den. (Und schick eine Beschwerde an denjenigen, der das Bild erzeugt hat.)
Bei der Anzeige in Farbe wird, falls vorhanden, die map-Datei des jeweiligen
Bildes mit verwendet. Die map-Datei muß den Namen des Bildes mit der zugefügten
Endung .map haben. Zur Unterstützung des PC-Dateisystems wird aber auch ein
Namen unterstützt, der sich durch Ersetzen der Endung (der Text nach dem
letzten Punkt) durch "map" ergibt.
Wenn eine map-Datei gefunden wurde wird dies im Konsolenfenster mitgeteilt.
Beispiele für Dateinamen:
Bilddatei: picture.jpeg map-Datei: picture.jpeg.map oder picture.map
pic1.jpg map-Datei: pic1.jpg.map oder pic1.map
Map-Dateien werden außerdem noch in dem Verzeichnis gesucht, auf das die
Umgebungsvariable MAPDIR weist. (Neu in Version 1.1)
Optionen:
*********
Die Optionen dürfen in beliebiger Reihenfolge stehen, die Groß- und Klein-
schreibung ist beliebig. Werden Optionen weggelassen dann werden interne
Vorgabewerte angenommen.
-GRAY
Die Anzeige erfolgt stets im Graustufen Modus.
-BS
Es wird ein sog. "block-smoothing" verwendet. Diese Option ist nur dann anzu-
wenden wenn die Codierung mit sehr niedriger Qualität erfolgte. Auf dem Bild-
schirm sind dann einzelne Blöcke mit nahezu konstanter Farbe zu sehen. Bei Ver-
wendung dieser Option werden die Kanten dieser Blöcke etwas verwaschen damit
sie nicht so auffallen.
Die Option sollte tatsächlich nur in diesem Fall verwendet werden.
-VGA
Beim Anzeigen des Bildes wird der VGA-Monitortreiber (auch Multiscan genannt)
verwendet.
Die Option -VGA ist dann zu setzen wenn bekannt ist, daß das Bild für die An-
zeige auf einem PC oder auf einem anderen Rechner mit quadratischer Auflösung
des Bildschirms vorgesehen war. (Dies trifft für fast alle JPEG-Bilder zu.)
Apropos quadratische Auflösung: Hier gibt es leider viele Mißverständnisse so
daß ich näher darauf eingehen werde:
Unter "quadratisch" ist nicht gemeint daß auf dem Bildschirm in horizontaler
und vertikaler Richtung genau gleich viele Bildpunkte vorhanden sind.
(z.B. 1024x1024) Es ist gemeint daß ein Quadrat bestehend aus z.B. 100x100
Bildpunkten auf dem Monitor ebenfalls als Quadrat zu sehen ist. Da das Seiten-
verhältnis einer üblichen Bildröhre 4:3 beträgt (angelehnt and die internatio-
nale Fernsehnorm) muß auch die horizontale und vertikale Auflösung Vielfache
davon betragen. (z.B. 640x480 da
640 4
--- = - )
480 3
Nur so ist gewährleistet daß ein solches Bild verzerrungsfrei dargestellt
wird.
-SUPER72 (Neu in Version 1.1)
Diese Option wird nur dann akzeptiert wenn auch -VGA angegeben wurde. Bei sehr
großen Bildern wird dann der SUPER72 Bildschirmmodus verwendet. Bei vielen
Monitoren muß aber der SUPER72-Monitortreiber angepaßt werden (z.B. mit dem
Programm "moned") damit sich eine quadratische Auflösung ergibt.
Außerdem habe ich das Programm "djpeg" beigelegt, mit dem man JPEG-Bilder in
das ppm-Format umwandeln kann. (Es ist auch zur Erzeugung der map-Dateien er-
forderlich)
Aufruf: djpeg Eingabedatei Ausgabedatei
Bei der direkten Umwandlung in das GIF-Format muß man JPEGTMP: mit einem assign-
Befehl zuweisen (z.B. assign JPEGTMP: HD:T) da djpeg eventuelle temporäre
Dateien dorthin ablegt. Alles weitere ist der zugehörigen Anleitung zu ent-
nehmen. Wenn ich mal Zeit habe werde ich die JPEG-Routinen in ppm2AGA einbauen
so daß dieses Programm dann nicht mehr benötigt wird.
Der Vollständigkeit halber ist noch das Programm "cjpeg" vorhanden, mit dem man
selber JPEG-Dateien erzeugen kann.
Eine Beschreibung von djpeg und cjpeg findet man in der Datei USAGE.
Erzeugung der map-Dateien
*************************
Diese Dateien sind unbedingt erforderlich damit die Anzeige in der best-
möglichen Qualität erfolgt. Sie werden im Normalfall durch das Shell-Skript
CreateMap erzeugt. Der Aufruf lautet:
CreateMap Bilddatei
Bei erfolgreicher Ausführung wird eine map-Datei mit korrektem Namen erzeugt.
(auch auf PC-Dateisystemen) Man kann auch mehrere Dateien mit einem Aufruf er-
zeugen. So werden z.B. durch den Befehl
SPat CreateMap pictures/#?.jpg
alle Bilder mit der Endung .jpg im Verzeichnis pictures bearbeitet.
Falls es nicht möglich ist, die map-Datei an der gleichen Stelle wie das Bild
abzuspeichern dann wird die map-Datei in dem Verzeichnis abgelegt, auf das die
Umgebungsvariable MAPDIR weist. jpegAGA 1.1 wird sie dann ebenfalls dort
suchen. Das Setzen der Umgebungsvariablen kann z.B. erfolgen mit dem Befehl:
setenv MAPDIR HD:tempdir
Die Variable geht dann allerdings nach einem Zurücksetzen des Rechners verlo-
ren. Man kann sie dauerhaft sichern mit dem Befehl:
copy ENV:MAPDIR ENVARC:
Somit ist es möglich auch Bilder von einer CD-ROM in optimaler Qualität anzu-
zeigen.
Bei Auftauchen von Problemen ist folgendes zu prüfen:
- Wurde wie im Abschnitt "Installation" beschrieben alles erforderliche
installiert ?
Benötigt werden die Programme djpeg sowie ppm2AGA die sich im Suchpfad der
Shell unter diesem Namen befinden müssen. Im LIBS: Verzeichnis muß sich die
ixemul.library befinden. Das Shell-Skript selbst muß im S: Verzeichnis sein.
Achtung: - ppm2AGA muß die Version 1.4 oder höher aufweisen
- nur djpeg aus dieser Distribution verwenden
- Ist das Verzeichnis JPEGTMP: korrekt zugewiesen ?
- Reicht der Speicherplatz auf der Festplattenpartition, auf die JPEGTMP:
weist, aus ?
Bei sehr großen Bildern können sogar mehr als 10MB benötigt werden.
- Ist genug Arbeitsspeicher vorhanden ?
Falls nicht kann man den benötigten Arbeitsspeicher reduzieren indem man beim
Aufruf des Shell-Skripts die Option -M0 angibt. (Näheres siehe Beschreibung
von ppm2AGA)
Beispiel: CreateMap pic.jpg -M0 oder SPat CreateMap #?.jpg -M0
Der erforderliche Arbeitsspeicher ist bei Verwendung der -M0 Option nahezu
unabhängig von der Größe des Bildes.
- Ist die Diskette, auf der sich das JPEG-Bild befindet, schreibgeschützt oder
ist zu wenig Speicherplatz vorhanden ?
- Wurde die Umgebungsvariable MAPDIR korrekt gesetzt ? Man kann dies überprüfen
mit dem Befehl: getenv MAPDIR
Das Shell-Skript kann stets durch Eingabe von CTRL-C abgebrochen werden.
Temporäre Dateien im Verzeichnis JPEGTMP: werden bei Abbruch oder Beendigung
automatisch gelöscht.
Der Anzeigebildschirm
*********************
Durch Bewegen der Maus kann der Bildausschnitt verschoben werden, falls das
Bild größer als der Overscan-Bereich ist. Bei Farbanzeige treten leider Stö-
rungen am linken Bildrand auf, die durch das HAM-Verfahren bedingt sind.
Der Bildschirm hat außerdem eine voll funktionsfähige Ziehleiste sowie einen
Vordergrund/Hintergrund-Schalter, die allerdings unsichtbar sind.
Durch Druck auf die rechte Maustaste wird die Anzeige beendet bzw. abgebrochen.
Da auf die linke Maustaste nicht reagiert wird kann man während der Berechnung
des Bildes einen anderen Bildschirm aktivieren und erst später den Anzeigebild-
schirm durch Drücken der linken Maustaste erneut aktivieren.
Solltest Du weitere Fragen haben so kannst Du mir jederzeit schreiben. Ich
werde mich bemühen alle Zuschriften zu beantworten.
Falls Du einen Fehler im Programm entdecken solltest (oder Mungwall/Enforcer-
Meldungen) so bitte ich ebenfalls um eine Benachrichtigung.
Entstehungsgeschichte
*********************
1.0 - 3. Juni 1994
- erste veröffentlichte Version
1.1 - 5. Oktober 1994
- die Option -SUPER72 wurde hinzugefügt
- beim Schließen des Grafikbildschirms ist jetzt kein Flackern mehr zu sehen
und die Verzögerung ist geringer
- map-Dateien werden auch in dem Verzeichnis gesucht, auf das die Umge-
bungsvariable MAPDIR weist
- falls keine map-Datei gefunden wurde wird der Benutzer darauf hingewiesen
daß er eine erzeugen sollte
- es werden jetzt beliebig lange Dateinamen (inklusive Pfad) akzeptiert
Aufruf
******
Wie Du sicher gemerkt hast bietet das Programm bislang nicht sehr viel, es gibt
noch viel zu tun. Meine Zeit ist leider begrenzt. (Ich studiere derzeit Elektro-
technik an der Uni Stuttgart.) Aus diesem Grund suche ich weitere Programmierer
die bereit sind, mit mir zusammenzuarbeiten sowie Beta-Tester für die fertigen
Programme. Wenn Du mitmachen willst dann melde dich bitte. Ich werde dann auch
eine ausführliche Beschreibung des Quelltextes erstellen. Einige Projekte
können aber auch völlig unabhängig voneinander realisiert werden.
Für die Neukompilierung von ppm2AGA ist das newiff-Paket von Commodore zwingend
erforderlich. Die Version 37 ist auf der Fish-Disk 705 zu finden, die Version 39
ist auf den "3.1 Amiga Developer Update" - Disketten vorhanden. (Bezugsquelle
siehe unten) oder auch im Aminet.
Als nächstes habe ich vor einen PhotoCD-Anzeiger/Konverter mit der Bildqualität
von jpegAGA/ppm2AGA zu programmieren. Mit den Routinen die ich bereits habe
dürfte dies kein Problem sein. Es wird ebenfalls ein frei kopierbares Programm
sein und ich werde auch den vollständigen Quelltext veröffentlichen.
Wenn Du Interesse an einem solchen Programm hast dann wäre es nett wenn Du mir
einige PhotoCDs zu Testzwecken leihen würdest. Du bekommst sie zurück zusammen
mit meinem Anzeiger/Konverter sobald er läuft. Falls Du sie mir schenken soll-
test dann freut es mich natürlich noch mehr und als Belohnung wird Dein Name
in der Anleitung erwähnt werden. (Und Du bekommst natürlich auch das Programm
zugeschickt.)
Alle Zuschriften sind an die folgenden Adressen zu richten:
Elektronische Post: Normale Post:
******************* *************
Guenther@studbox.uni-stuttgart.de Günther Röhrich
(Internet EMAIL) Lerchenbergstr. 4
D-73733 Esslingen
Falls Du innerhalb von drei Wochen keine Antwort auf eine EMAIL bekommst
so versuche es über die normale Post noch einmal.
Bezugsquellen
*************
Gute Bilder im JPEG-Format findet man in rauhen Mengen in:
ftp.uni-stuttgart.de in pub/graphics/pictures
Das newiff-Paket, Version 39, findet man in:
ftp.uni-stuttgart.de in pub/systems/amiga/aminet/gfx/misc
sowie auf allen anderen Aminet-Servern. Wenn Du dazu keinen Zugang hast dann
kannst Du es auch direkt von mir bekommen.
Das "3.1 Amiga Developer Update" ist erhältlich bei:
Hirsch & Wolf oHG
Mittelstr. 33
D-56564 Neuwied
Tel.: 02631-8399-0
Fax: 02631-839931
und kostet 50 DM. Da Commodore aber inzwischen aufgelöst ist weiß ich nicht ob
und wie lange es noch verfügbar ist.
Siehe auch die Datei "Info.Developer"